/**
 * zbestpayment.com Inc.
 * Copyright (c) 2004-2017 All Rights Reserved.
 */
package com.zbest.zpay.service.paycore.model;

import java.math.BigDecimal;
import java.util.List;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;

import org.hibernate.validator.constraints.NotBlank;
import org.springframework.format.annotation.NumberFormat;

import com.zbest.common.lang.base.AbstractRequest;

/**
 * 支付订单
 *
 * @author Administrator
 * @version $Id: PayInfoDTO.java, v 0.1 2017-4-5 下午10:20:47 Administrator Exp $
 */
public class PayInfoDTO extends AbstractRequest {

    /**  */
    private static final long   serialVersionUID = 4595228042367271894L;

    /**币种*/
    @NotBlank
    private String              currency;

    /**金额，使用币种最小单位*/
    @NumberFormat
    @Min(value = 1)
    private BigDecimal          amount;

    /***/
    @NotBlank
    private String              userId;

    /**支付类型 ,充值or冲退*/
    @NotNull
    private PayType             payType;

    /**交易订单号*/
    @NotBlank
    private String              tradeOrderNo;

    /**商品标题*/
    private String              goodsTitle;

    /**退款的时候才需要使用*/
    private String              refPayInfoId;

    @NotNull
    private List<PaySubInfoDTO> paySubInfoDTOList;

    public List<PaySubInfoDTO> getPaySubInfoDTOList() {
        return paySubInfoDTOList;
    }

    public void setPaySubInfoDTOList(List<PaySubInfoDTO> paySubInfoDTOList) {
        this.paySubInfoDTOList = paySubInfoDTOList;
    }

    public String getCurrency() {
        return currency;
    }

    public void setCurrency(String currency) {
        this.currency = currency;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public PayType getPayType() {
        return payType;
    }

    public void setPayType(PayType payType) {
        this.payType = payType;
    }

    public String getTradeOrderNo() {
        return tradeOrderNo;
    }

    public void setTradeOrderNo(String tradeOrderNo) {
        this.tradeOrderNo = tradeOrderNo;
    }

    public String getRefPayInfoId() {
        return refPayInfoId;
    }

    public void setRefPayInfoId(String refPayInfoId) {
        this.refPayInfoId = refPayInfoId;
    }

    public String getGoodsTitle() {
        return goodsTitle;
    }

    public void setGoodsTitle(String goodsTitle) {
        this.goodsTitle = goodsTitle;
    }

}
